go/types.Map.key (field)
27 uses
go/types (current package)
builtins.go#L400: if key != nil && !Identical(map_.key, key) {
builtins.go#L404: key = map_.key
index.go#L97: check.assignment(&key, typ.key, "map index")
index.go#L135: k = t.key
infer.go#L620: return w.isParameterized(t.key) || w.isParameterized(t.elem)
infer.go#L771: w.typ(t.key)
literals.go#L272: if utyp.key == nil || utyp.elem == nil {
literals.go#L280: keyIsInterface := isNonTypeParamInterface(utyp.key)
literals.go#L288: check.exprWithHint(x, kv.Key, utyp.key)
literals.go#L289: check.assignment(x, utyp.key, "map literal")
map.go#L12: key, elem Type
map.go#L17: return &Map{key: key, elem: elem}
map.go#L21: func (m *Map) Key() Type { return m.key }
predicates.go#L461: return c.identical(x.key, y.key, p) && c.identical(x.elem, y.elem, p)
stmt.go#L1056: return typ.key, typ.elem, "", true
subst.go#L229: key := subst.typ(t.key)
subst.go#L231: if key != t.key || elem != t.elem {
subst.go#L232: return &Map{key: key, elem: elem}
typestring.go#L264: w.typ(t.key)
typexpr.go#L366: typ.key = check.varType(e.Key)
typexpr.go#L376: if !Comparable(typ.key) {
typexpr.go#L378: if isTypeParam(typ.key) {
typexpr.go#L381: check.errorf(e.Key, IncomparableMapKey, "invalid map key type %s%s", typ.key, why)
typexpr.go#L383: }).describef(e.Key, "check map key %s", typ.key)
unify.go#L724: return u.nify(x.key, y.key, emode, p) && u.nify(x.elem, y.elem, emode, p)